package com.mo.sys.web.advice;

import com.mo.sys.web.pojo.JsonResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 *@RestControllerAdvice Spring web模块全局异常处理类
 *
 */

@RestControllerAdvice
public class GlobalExceptionHandler {

    private static final Logger log=
            //初始化日志工厂
            LoggerFactory.getLogger(GlobalExceptionHandler.class);

    /**
     * @ExceptionHandler 注解描述的方法为异常处理方法，
     * ---注解中定义的异常类型为方法可以处理的异常类型
     * @param e  此参数用于接收要处理的异常对象，通常与@ExceptionHandler注解
     *           中定义的异常类型相同，或者是@ExceptionHandler注解中定义的异常类型的父类类型
     * @return  封装了异常状态和信息的对象
     */
    @ExceptionHandler(RuntimeException.class)
    public JsonResult doHandleRunTimeException
            (RuntimeException e){
        e.printStackTrace(); //d打印异常信息
        log.error("exception{}",e.getMessage());
        return new JsonResult(e);
    }

}
